解题思路:
本题是对结构体数组中的姓名按升序进行排列。
第一处:t是一个临时变量,主要是存放学生数据的结构变量,所以应填:struct student。
第二处:利用两重for循环进行排序操作,排序的终止条件应该是总人数减1,所以应填:n-1。
第三处:对姓名进行比较大小,所以应填:a[i].name,a[j].name。
***************************************************
给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。
例如,调用fun函数之前给字符串输入:ABCDeFGH,
调用后字符串中的内容为:eABCDFGH。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
给定源程序:
#include
fun( char *p )
{ char max,*q; int i=0;
max=p[i];
while( p[i]!=0 )
{ if( max
{ max=p[i];
/
q=p+i
}
i++;
}
wihle( q>p )
{ *q=*(q-1);
q--;
}
p[0]=max;
}
main()
{ char str[80];
printf("Enter a string: "); gets(str);
printf("\nThe original string: "); puts(str);
fun(str);
printf("\nThe string after moving: "); puts(str); printf("\n\n");
}